package com.gscitysfy.cus.drain.modules.inspection.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gscitysfy.cus.drain.modules.inspection.entity.DrainInspectionMnOrder;
import com.gscitysfy.cus.drain.modules.inspection.vo.AppQueryVo;
import com.gscitysfy.cus.drain.modules.inspection.vo.DrainInspectionMnOrderQueryVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author Administrator
 * @since 2022-10-14 16:15:41
 */
public interface DrainInspectionMnOrderMapper extends BaseMapper<DrainInspectionMnOrder> {

    /**
     * 获取分页
     *
     * @param page    分页信息
     * @param queryVo 查询条件
     * @return IPage 分页数据
     */
    IPage<DrainInspectionMnOrder> getPageList(Page<DrainInspectionMnOrder> page, @Param("vo") DrainInspectionMnOrderQueryVo queryVo);

    /**
     * 获取今日待办维养单
     *
     * @param page 分页信息
     * @return IPage 分页数据
     */
    IPage<DrainInspectionMnOrder> getTodayTodo(Page<DrainInspectionMnOrder> page, @Param("today") Date today, @Param("userId") String userId);

    /**
     * 获取维养单列表
     *
     * @param idList id集合
     * @return List 集合数据
     */
    List<DrainInspectionMnOrder> getList(@Param("ids") List<Long> idList);

    /**
     * 获取App分页数据
     *
     * @param page    页码
     * @param queryVo 条件
     * @return IPage 分页数据
     */
    IPage<DrainInspectionMnOrder> getAppPageList(Page<DrainInspectionMnOrder> page, @Param("vo") AppQueryVo queryVo);

    /**
     * 获取养护任务
     *
     * @param queryVo 条件
     * @return Long 数量
     */
    Long countMaintain(@Param("vo") AppQueryVo queryVo);

    /**
     * 获取巡查问题
     *
     * @param queryVo 条件
     * @return Long 数量
     */
    Long countInspection(@Param("vo") AppQueryVo queryVo);

    /**
     * 获取上报问题
     *
     * @param queryVo 条件
     * @return Long 数量
     */
    Long countReport(@Param("vo") AppQueryVo queryVo);
}
